home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-04 | 4.3 KB | 147 lines | [TEXT/MMCC] |
- /*================================================================================
- TricksDialog.cp
-
- ©1994 Greg Anderson
- greggor@apple.com
-
- Display a modeless dialog that allows the user to set the file and
- creator types of files selected in the Finder
-
- ================================================================================*/
- #include "TricksDialog.h"
- #include "DialogUtilities.h"
- #include "MenuHandler.h"
- #include "Exceptions.h"
- #include "SendFinderTricks.h"
- #include "Main.h"
-
- DialogPtr gTricksDialogPtr = nil;
-
- #define kTricksDialogID 128
-
- #define kSetButton 1
-
-
- #define kMethodGroupSize 100
- #define kMethodItemBaseID 501
- #define kMethodStrings 128
-
-
- //----------------------------------------------------------------------------------------
- // OpenTricksDialog:
- //
- // Display the Set creator / set type dialog
- //----------------------------------------------------------------------------------------
- void OpenTricksDialog()
- {
- OSErr err = noErr;
-
- //
- // Set up Dialog box
- //
- if( gTricksDialogPtr == nil )
- {
- TTricksDialogHandler* dialogHandler = nil;
- NOREGISTER(dialogHandler);
-
- Try
- {
- gTricksDialogPtr = GetNewDialog(kTricksDialogID, (Ptr)0L, (WindowPtr)-1L);
- FailResErrorOrNil( gTricksDialogPtr );
- dialogHandler = new TTricksDialogHandler;
- dialogHandler->ITypesDialogHandler(gTricksDialogPtr);
- }
- Catch(err)
- {
- if( dialogHandler != nil )
- delete dialogHandler;
- if( gTricksDialogPtr != nil )
- {
- DisposDialog( gTricksDialogPtr );
- gTricksDialogPtr = nil;
- }
-
- Throw(err);
- }
- }
-
- if( gTricksDialogPtr != nil )
- SelectWindow(gTricksDialogPtr);
- } // OpenTricksDialog
-
-
- //========================================================================================
- // CLASS TTricksDialogHandler
- //========================================================================================
-
-
- //----------------------------------------------------------------------------------------
- // TTricksDialogHandler::ITypesDialogHandler:
- //
- // Initialize the Set creator / set type dialog box
- //----------------------------------------------------------------------------------------
- void TTricksDialogHandler::ITypesDialogHandler(DialogPtr dialog)
- {
- //
- // Call the inherited initialization method to finish
- // constructing this object. Note that this act will
- // center and display the dialog.
- //
- TModelessDialogHandler::IModelessDialogHandler(dialog);
- } // TTricksDialogHandler::ITypesDialogHandler
-
- //----------------------------------------------------------------------------------------
- // TTricksDialogHandler::CloseWindowByUser:
- //
- // We behave like a DA, with only one open window; if the user closes our only
- // window, then we quit.
- //----------------------------------------------------------------------------------------
- void TTricksDialogHandler::CloseWindowByUser()
- {
- ExitProgram(nil, 0);
- } // TTricksDialogHandler::CloseWindowByUser
-
- //----------------------------------------------------------------------------------------
- // TTricksDialogHandler::SetupMenus:
- //----------------------------------------------------------------------------------------
- void TTricksDialogHandler::SetupMenus()
- {
- TModelessDialogHandler::SetupMenus();
- } // TTricksDialogHandler::SetupMenus
-
- //----------------------------------------------------------------------------------------
- // TTricksDialogHandler::ProcessMenuSelection:
- //----------------------------------------------------------------------------------------
- Boolean TTricksDialogHandler::ProcessMenuSelection(short commandID)
- {
- return TWindowHandler::ProcessMenuSelection(commandID);
- } // TTricksDialogHandler::ProcessMenuSelection
-
- //----------------------------------------------------------------------------------------
- // TTricksDialogHandler::DialogManagerEvent:
- //
- // When a dialog item is clicked on, this function is called to handle the event.
- //----------------------------------------------------------------------------------------
- void TTricksDialogHandler::DialogManagerEvent(EventRecord* event, short itemHit)
- {
- //
- // Pick a trick
- //
- if(itemHit == kSetButton)
- {
- RotateIconsTrick();
- }
- if(itemHit == 2)
- {
- RevealOwnerOfFrontWindow();
- }
- if(itemHit == 3)
- {
- RemoveCustomIconFromSelection();
- }
- if(itemHit == 4)
- {
- ShareSelectedFolders();
- }
- } // TTricksDialogHandler::DialogManagerEvent
-